Unity Android 接入高德定位SDK | 您所在的位置:网站首页 › unity 地图 定位 › Unity Android 接入高德定位SDK |
Unity版本 2020 第一步首先去高德开放平台注册账号然后申请Key 高德开放平台 | 高德地图API 注册好账号之后 点击控制台 然后选择管理key 新建一个应用 选择添加 然后创建一个key 选择Android平台 SHA1码获取方式参考我的另一篇博客 Android 签名文件.keystore转换.jks_小张不爱写代码的博客-CSDN博客_keystore转jks 然后直接创建key即可 创建完毕之后去下载定位SDK 相关下载-Android 定位SDK | 高德地图API 打开Unity创建一个Unity项目 并创建如下脚本 using UnityEngine; using UnityEngine.UI; public class Sdk : MonoBehaviour { public Text t; private AndroidJavaClass jc; private AndroidJavaObject jo; private void Awake() { if (Application.platform == RuntimePlatform.Android) { jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); jo = jc.GetStatic("currentActivity"); } } public void StartAMap() { switch (Application.platform) { case RuntimePlatform.Android: jo.Call("StartAMap"); break; default: StopAMapCallBack(); break; } } public void StopAMap() { switch (Application.platform) { case RuntimePlatform.Android: jo.Call("StopAMap"); break; default: break; } } public void StartAMapCallBack(string msg) { t.text = msg; } public void StopAMapCallBack() { t.text = "1111"; } }然后创建如下结构 Button点击事件分别指向StartAMap和StopAMap即可 然后直接出包导出AndroidStudio项目 导出完成之后 现在AS工程中的Libs文件夹中放入解压的高德SDK jar包 导入之后在如图位置写入如下代码 在AndroidManifest.xml上面写入如下权限 在AndroidManifest.xml的Application节点内写入如下内容 打开UnityPlayerActivity脚本 在末尾加入如下代码 用以动态申请权限 //权限管理 private static final String[] PERMISSIONS = { Manifest.permission.INTERNET, Manifest.permission.ACCESS_COARSE_LOCATION, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_NETWORK_STATE, Manifest.permission.ACCESS_WIFI_STATE, Manifest.permission.CHANGE_WIFI_STATE, Manifest.permission.READ_PHONE_STATE, Manifest.permission.ACCESS_LOCATION_EXTRA_COMMANDS, Manifest.permission.BLUETOOTH, Manifest.permission.BLUETOOTH_ADMIN, }; private static final int PERMISSIONS_CODE = 1; //申请权限 private void requestPermission() { // 当API大于 23 时,才动态申请权限 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { ActivityCompat.requestPermissions(this,PERMISSIONS,PERMISSIONS_CODE); } } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); switch (requestCode) { case PERMISSIONS_CODE: //权限请求失败 for(int i=0;i |
CopyRight 2018-2019 实验室设备网 版权所有 |